Digital watermarking is a process for modifying physical or electronic media signals to embed a hidden machine-readable code into the media. The media signal may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects. Steganography is related field of study pertaining to encoding and decoding of hidden auxiliary data signals, such that the auxiliary data is not discernable by a human.
Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by subtly altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.
Several particular watermarking and steganographic techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting auxiliary messages in media signals are detailed in the assignee's U.S. Pat. Nos. 6,614,914, and 6,122,403, which are hereby incorporated by reference.
One practical challenge in the deployment of digital watermarking systems is the potential lack of flexibility in changing aspects of the digital watermark system once it is deployed. As system and application requirements change, there is sometimes a desire to change aspects of the digital watermark message coding protocol. For example, one might want to change the format, syntax, semantics and length of the message payload in the digital watermark. The syntax used in the protocol can include the types and sizes of message fields, as well as the symbol coding alphabet (e.g., use of binary or M-ary symbols, etc.) The semantics used in the protocol refer to the meaning of the message elements in the message payload (e.g., what the elements are interpreted to mean). While such changes may not alter the fundamental data hiding or extraction function, they present a practical difficulty because the deployed digital watermark readers may be rendered obsolete if the protocol is changed.
One potential solution is to upgrade the readers deployed in the field. However, this presents technical challenges, such as whether the readers are accessible and/or re-programmable to receive and facilitate upgrades.
This disclosure describes variable message protocol methods for digital watermarking. One method is a message protocol method used for embedding of digital watermarks. This method forms a fixed message protocol portion having a fixed length and identifying a version of a variable protocol portion. The method also forms a variable message protocol portion having variable error robustness message coding format. The version indicates the error robustness coding format of the variable protocol portion. The fixed and variable message protocol portions are then embedded into a host media signal such that the message is substantially imperceptible in the host media signal.
Another method is for decoding a digital watermark having fixed and variable protocol message portions. The method extracts a hidden message code embedded in a host media signal by evaluating the host media signal to compute the hidden message code having fixed and variable message protocol portions. It performs error robustness decoding of the fixed protocol portion of the extracted message code to produce one or more message symbols representing a version identifier. Next, it interprets the version identifier to ascertain a version of variable protocol used to embed the variable protocol portion. Finally, it applies an error robustness decoding method of the version to decode message symbols of the variable message protocol portion.
Another method is for steganographically encoding a variable message into a media signal. This method forms a control message portion including at least one symbol that identifies the format of the variable message. It also forms a variable message according to the format. The format indicates a variable length of the variable message portion. The method produces a media signal with the variable message steganographically encoded in it such that the variable message is not discernable by a human but is readable by an automated reader. For example where the media signal is an image, the human viewer is not able to read the variable message encoded in that image because symbols in the variable message are arranged so as not to be interpretable without knowledge of the encoding format.
These methods are described for implementation in software instructions executing on a general purpose processor, instructions (e.g., firmware) executing in an embedded processor or like digital logic circuit, application specific digital logic processor, or combination of these implementations.
Further features will become apparent with reference to the following detailed description and accompanying drawings.